/**
 * 计算滚动条宽度的方法
 *  新建一个带有滚动条的 div 元素，通过该元素的 offsetWidth 和 clientWidth 的差值即可获得
 */
export function getScrollbarWidth() {
  const scrollDiv = document.createElement('div');
  scrollDiv.style.cssText =
    'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';
  document.body.appendChild(scrollDiv);
  const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
  document.body.removeChild(scrollDiv);
  return scrollbarWidth;
}

// 获取某元素到页面左侧的距离
export function getEleOffsetLeft(element) {
  let left = element.offsetLeft; // 当前元素左边距
  let parent = element.offsetParent; // 当前元素的父级元素
  while (parent !== null) {
    left += parent.offsetLeft; // 累加左边距
    parent = parent.offsetParent; // 依次获取父元素
  }
  return left;
}

// 获取某元素到页面顶部的距离
export function getEleOffsetTop(element) {
  let top = element.offsetTop;
  let parent = element.offsetParent;
  while (parent !== null) {
    top += parent.offsetTop;
    parent = parent.offsetParent;
  }
  return top;
}
